This document relates to managing task performance.
Systems for large-scale parallel processing can include performing computer tasks and/or processes on a cluster of computers and/or servers (e.g., task parallelism). Each computer in the cluster can perform part of a particular task by executing one or more task instances. For example, different task instances of a particular task can be performed in parallel on various servers within a cluster of servers and can interact with the same or different data. A large number of tasks can be handled on the cluster of servers, and each task can be executed in multiple task instances. Generally, each task instance executes the same set of software instructions, although the various tasks are typically executed in support of various different processes.
As a computer in the cluster performs the tasks, the tasks can use common resources, such as the CPU, network bandwidth or memory. Because the tasks share these common resources, one task can interfere with the performance of other tasks executing on the same computer. For example, one task can require or use a greater share of the CPU and/or memory than other tasks and can cause the other tasks executed on the computer to have increased task latency or increase the number of CPU cycles needed to complete an instruction.